// localStorageUtil.js

// 存储数据并设置过期时间
export function setWithExpiry(key, value, ttl) {
  const now = new Date()
  const item = {
    value: value,
    expiry: now.getTime() + ttl // 计算过期时间
  }
  localStorage.setItem(key, JSON.stringify(item))
}

// 获取数据并检查是否过期
export function getWithExpiry(key) {
  const itemStr = localStorage.getItem(key)
  if (!itemStr) {
    return null // 数据不存在
  }
  const item = JSON.parse(itemStr)
  const now = new Date()
  if (now.getTime() > item.expiry) {
    // 数据已过期，清除数据
    localStorage.removeItem(key)
    return null
  }
  return item.value // 返回有效数据
}

// 清理过期数据
export function clearExpiredItems() {
  for (let i = 0; i < localStorage.length; i++) {
    const key = localStorage.key(i)
    const itemStr = localStorage.getItem(key)
    if (!itemStr) {
      continue
    }
    const item = JSON.parse(itemStr)
    const now = new Date()
    if (now.getTime() > item.expiry) {
      localStorage.removeItem(key)
    }
  }
}
